$.extend(
    $.fn.textbox.defaults.rules,
    {
        CHS: {
            validator: function (value, param) {
                return /^[\u0391-\uFFE5]+$/.test(value);
            },
            message: '请输入汉字'
        },
        english: {// 验证英语
            validator: function (value) {
                return /^[A-Za-z]+$/i.test(value);
            },
            message: '请输入英文'
        },
        ip: {// 验证IP地址
            validator: function (value) {
                return /\d+\.\d+\.\d+\.\d+/.test(value);
            },
            message: 'IP地址格式不正确'
        },
        ZIP: {
            validator: function (value, param) {
                return /^[0-9]\d{5}$/.test(value);
            },
            message: '邮政编码不存在'
        },
        QQ: {
            validator: function (value, param) {
                return /^[1-9]\d{4,10}$/.test(value);
            },
            message: 'QQ号码不正确'
        },
        mobile: {
            validator: function (value, param) {
                return /^(?:13\d|15\d|18\d)-?\d{5}(\d{3}|\*{3})$/
                    .test(value);
            },
            message: '手机号码不正确'
        },
        tel: {
            validator: function (value, param) {
                return /^(\d{3}-|\d{4}-)?(\d{8}|\d{7})?(-\d{1,6})?$/
                    .test(value);
            },
            message: '电话号码不正确'
        },
        mobileAndTel: {
            validator: function (value, param) {
                return /(^([0\+]\d{2,3})\d{3,4}\-\d{3,8}$)|(^([0\+]\d{2,3})\d{3,4}\d{3,8}$)|(^([0\+]\d{2,3}){0,1}13\d{9}$)|(^\d{3,4}\d{3,8}$)|(^\d{3,4}\-\d{3,8}$)/
                    .test(value);
            },
            message: '请正确输入电话号码'
        },
        number: {
            validator: function (value, param) {
                return /^[0-9]+.?[0-9]*$/.test(value);
            },
            message: '请输入数字'
        },
        PandNnumbers: {
            validator: function (value, param) {
                return (/^(\-?)(([1-9]\d*)|\d)(\.\d{1,2})?$/).test(value);
            },
            message: '请输入正确的金额(小数保留两位)'
        },
        negative: {
            validator: function (value, param) {
                /* ^-[1-9]\d*\.\d*|-0\.\d*[1-9]\d*$*/
                return (/^(-[0-9]\d*|0)(\.\d{1,2})?$/).test(value);
            },
            message: '请输入正确的金额(扣款项为负数或0,小数保留两位)'
        },
        money: {
            validator: function (value, param) {
                return (/^(([1-9]\d*)|\d)(\.\d{1,2})?$/)
                    .test(value);
            },
            message: '请输入正确的金额(小数保留两位)'

        },
        mone: {
            validator: function (value, param) {
                return (/^(([1-9]\d*)|\d)(\.\d{1,2})?$/)
                    .test(value);
            },
            message: '请输入整数或小数'

        },
        integer: {
            validator: function (value, param) {
                return /^[+]?[1-9]\d*$/.test(value);
            },
            message: '请输入最小为1的整数'
        },
        integ: {
            validator: function (value, param) {
                return /^[+]?[0-9]\d*$/.test(value);
            },
            message: '请输入整数'
        },
        range: {
            validator: function (value, param) {
                if (/^[1-9]\d*$/.test(value)) {
                    return value >= param[0] && value <= param[1]
                } else {
                    return false;
                }
            },
            message: '输入的数字在{0}到{1}之间'
        },
        minLength: {
            validator: function (value, param) {
                return value.length >= param[0]
            },
            message: '至少输入{0}个字'
        },
        maxLength: {
            validator: function (value, param) {
                return value.length <= param[0]
            },
            message: '最多{0}个字'
        },
        // select即选择框的验证
        selectValid: {
            validator: function (value, param) {
                if (value == param[0]) {
                    return false;
                } else {
                    return true;
                }
            },
            message: '请选择'
        },
        idCode: {
            validator: function (value, param) {
//							非严格检测
                if (!value || !/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}(\d|X)$/i.test(value)) {
                    return false;
                }
//							严格检测
//							if(!value || !/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}(\d|X)$/i.test(value)){
//								return false;
//							} else if(value.length == 18){ //18位身份证需要验证最后一位校验位
//									value = value.split('');
//				                    //∑(ai×Wi)(mod 11)
//				                    //加权因子
//				                    var factor = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ];
//				                    //校验位
//				                    var parity = [ 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 ];
//				                    var sum = 0;
//				                    var ai = 0;
//				                    var wi = 0;
//				                    for (var i = 0; i < 17; i++)
//				                    {
//				                        ai = value[i];
//				                        wi = factor[i];
//				                        sum += ai * wi;
//				                    }
//				                    var last = parity[sum % 11];
//				                    if(parity[sum % 11] != value[17]){
//				                        return false;
//				                    }
//				           }
                return true;
            },
            message: '请输入正确的身份证号'
        },
        isExcel: {
            validator: function (value, param) {
                return /\.xl(s|s[xmb]|t[xm]|am)$/.test(value);
            },
            message: '上传的文件格式不正确，请选择Excel文件'
        },
        loginName: {
            validator: function (value, param) {
                return /^[\u0391-\uFFE5\w]+$/.test(value);
            },
            message: '只允许汉字、英文字母、数字及下划线。'
        },
        equals: {
            validator: function (value, param) {
                return value == $(param[0]).val();
            },
            message: '两次输入不匹配.'
        },
        equalTo: {
            validator: function (value, param) {
                return value == $(param[0]).val();
            },
            message: '两次输入的字符不一至'
        },
        englishOrNum: {// 只能输入英文和数字
            validator: function (value) {
                return /^[a-zA-Z0-9_ ]{1,}$/.test(value);
            },
            message: '请输入英文、数字、下划线或者空格'
        },
        image: {
            validator: function (value) {
                return /\.(gif|jpg|jpeg|png|GIF|JPG|JPEG|PNG)$/.test(value);
            },
            message: '图片类型必须是.gif,jpeg,jpg,png中的一种'
        },
        xiaoshu: {
            validator: function (value) {
                return /^(([1-9]+)|([0-9]+\.[0-9]{1,2}))$/
                    .test(value);
            },
            message: '最多保留两位小数！'
        },
        ddPrice: {
            validator: function (value, param) {
                if (/^[1-9]\d*$/.test(value)) {
                    return value >= param[0] && value <= param[1];
                } else {
                    return false;
                }
            },
            message: '请输入{0}到{1}之间正整数'
        },
        jretailUpperLimit: {
            validator: function (value, param) {
                if (/^[0-9]+([.]{1}[0-9]{1,2})?$/.test(value)) {
                    return parseFloat(value) >= parseFloat(param[0])
                        && parseFloat(value) <= parseFloat(param[1]);
                } else {
                    return false;
                }
            },
            message: '请输入{0}到{1}之间的最多俩位小数的数字'
        },
        rateCheck: {
            validator: function (value, param) {
                if (/^[0-9]+([.]{1}[0-9]{1,2})?$/.test(value)) {
                    return parseFloat(value) > parseFloat(param[0])
                        && parseFloat(value) <= parseFloat(param[1]);
                } else {
                    return false;
                }
            },
            message: '请输入{0}到{1}之间的最多俩位小数的数字'
        }
    });